package com.yunban.project.template.service;

import com.baomidou.mybatisplus.extension.service.IService;
import net.lab1024.sa.base.EventEnum;
import com.yunban.project.template.model.domain.Decoder;
import com.yunban.project.template.model.dto.DecoderReq;
import com.yunban.project.template.model.dto.DecoderSearchReq;
import com.yunban.project.template.model.vo.DecoderResp;
import net.lab1024.sa.base.common.domain.PageResult;

/**
 * @author: lijiajun
 * @date: 2024-11-07
 * @version: 1.0
 */
public interface DecoderService extends IService<Decoder> {

    Decoder findById(long id);

    /**
     * 获取抽取解码器列表-分页
     *
     * @param req 分页筛选参数
     * @return PageResult<E>
     */
    PageResult<DecoderResp> getDecoderList(DecoderSearchReq req);

    /**
     * 添加解码器
     *
     * @param req 添加解码器入参
     * @return bool
     */
    Boolean saveDecoder(DecoderReq req);

    /**
     * 修改解码器
     *
     * @param id  解码器ID
     * @param req 修改解码器入参
     * @return bool
     */
    Boolean editDecoder(long id, DecoderReq req);

    /**
     * 修改解码器启用状态
     *
     * @param id    id
     * @param event 事件
     * @return bool
     */
    Boolean updateState(long id, EventEnum event);

    /**
     * 删除解码器
     *
     * @param id 解码器ID
     * @return bool
     */
    Boolean delDecoder(long id);
}
